﻿// 3551. 二进制数字翻转.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <algorithm>


using namespace std;
/*
https://www.acwing.com/problem/content/3554/

给定一个整数 n，将其二进制位反转（共 32 位），然后输出对应的十进制数。

输入格式
第一行包含整数 T，表示共有 T组测试数据。

每组数据占一行，包含一个整数 n。

输出格式
每组数据输出一行，一个结果。

数据范围
1≤T≤100
,
0<n<232
,
注意 n的取值范围。

输入样例：
2
2
3
输出样例：
1073741824
3221225472
*/


long long  t, n;

void solve() {
	cin >> n;
	string num;
	while (n != 0) {
		if (n & 1) {
			num.push_back('1');
		}
		else {
			num.push_back('0');
		}
		n >>= 1;
	}

	while (num.size() < 32) {
		num.push_back('0');
	}

	reverse(num.begin(), num.end());

	long long ans = 0;
	for (int i = 0; i < num.size(); i++) {
		if (num[i] == '1') {
			ans += (long long)1 << (i);
		}
	}

	cout << ans << endl;

}

int main()
{
	cin >> t;
	while (t--) {
		solve();
	}

	return 0;
}

